BEGIN;
DROP TABLE IF EXISTS logging_event_property;
DROP TABLE IF EXISTS logging_event_exception;
DROP TABLE IF EXISTS logging_event;
COMMIT;

BEGIN;
CREATE TABLE logging_event( 
timestmp BIGINT NOT NULL, 
formatted_message  TEXT NOT NULL, 
logger_name VARCHAR(254) NOT NULL, 
level_string VARCHAR(254) NOT NULL, 
thread_name  VARCHAR(254), 
reference_flag SMALLINT, 
arg0 VARCHAR(254),
arg1 VARCHAR(254),
arg2 VARCHAR(254), 
arg3 VARCHAR(254), 
caller_filename VARCHAR(254) NOT NULL, 
caller_class VARCHAR(254) NOT NULL, 
caller_method VARCHAR(254) NOT NULL, 
caller_line CHAR(4) NOT NULL, 
event_id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
COMMIT;

BEGIN;
CREATE TABLE logging_event_property( 
event_id BIGINT NOT NULL, 
mapped_key VARCHAR(254) NOT NULL, 
mapped_value TEXT, 
PRIMARY KEY(event_id, mapped_key),
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)
);
COMMIT;

BEGIN;
CREATE TABLE logging_event_exception (
event_id BIGINT NOT NULL, 
i SMALLINT NOT NULL, 
trace_line VARCHAR(254) NOT NULL, 
PRIMARY KEY(event_id, i), 
FOREIGN KEY (event_id) REFERENCES logging_event(event_id)    
);
COMMIT;